package com.starry.module.system.api.oauth2.domain.qo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.starry.core.common.domain.qo.PageQo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 第三方客户端Oauth2ThirdClientPageQo
 * @author xiaoke
 */
@EqualsAndHashCode(callSuper = true)
@Schema(description = "Oauth2ThirdClientPageQo")
@Data
public class Oauth2ThirdClientPageQo extends PageQo {

    private Long id;
    /**
     * 客户端编码
     */
    @Schema(description = "客户端编码")
    private String code;

    /**
     * logo
     */
    @Schema(description = "logo")
    private String logo;
    /**
     * 客户端名称
     */
    @Schema(description = "客户端名称")
    private String name;
    /**
     * 客户端Id
     */
    @Schema(description = "客户端Id")
    private String clientId;
    /**
     * 客户端密钥
     */
    @Schema(description = "客户端密钥")
    private String clientSecret;
    /**
     * PC端回调地址
     */
    @Schema(description = "PC端回调地址")
    private String pcRedirectUrl;
    /**
     * PC端回调地址
     */
    @Schema(description = "APP端回调地址")
    private String appRedirectUrl;
    /**
     * scope
     */
    @Schema(description = "scope")
    private String scope;
    /**
     * 获取用户信息的地址
     */
    @Schema(description = "获取用户信息的地址")
    private String userInfoUri;
    /**
     * 获取token地址
     */
    @Schema(description = "获取token地址")
    private String tokenUri;
    /**
     * 发起授权申请的地址
     */
    @Schema(description = "发起授权申请的地址")
    private String authorizationUri;
    /**
     * 是否启用
     */
    @Schema(description = "是否启用")
    private Integer status;
    /**
     * 创建者id
     */
    @Schema(description = "创建者Id")
    @TableField(fill = FieldFill.INSERT)
    private Long createId;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * 创建者用户名
     */
    @Schema(description = "创建者用户名")
    @TableField(fill = FieldFill.INSERT)
    private String createName;

    /**
     * 更新者Id
     */
    @Schema(description = "更新者Id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateId;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 更新者用户名
     */
    @Schema(description = "更新者用户名")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateName;
}

